<?php

namespace App\Common;

use App\Music\Model\MusicArtist;
use QL\QueryList;

class QueryListCommon
{


    /**
     * 获取qq音乐歌手列表
     * */
    public static function getQqMusicSinger()
    {
        $html = file_get_contents('/data/server/storage/file/歌手列表.html');
//然后可以把页面源码或者HTML片段传给QueryList
        $data = QueryList::html($html)->rules([  //设置DOM解析规则
            // DOM解析所有a标签的href属性
            'link' => ['a', 'href'],
            // DOM解析所有a标签的文本内容
            'text' => ['a', 'text']
        ])->range('.singer_list_txt__item')->query()->getData();
//        ])->range('.singer_list__item')->query()->getData();

        $data = $data->all();

        $result = [];
        foreach ($data as $key => $item) {

            $line_arr = explode('/',$item['link']);

            $result_item = [
                'name' => self::replace_multiple_spaces_and_newlines($item['text']),

                'platform_json'=>json_encode([['platform'=>1,'platform_name'=>'QQ音乐','platform_id'=>end($line_arr)]],JSON_UNESCAPED_UNICODE)
            ];
            $result[] = $result_item;
//            $re = MusicArtist::query()->insert($result_item);
//            if (!$re){
//                logger()->error('插入错误: '.json_encode($result_item));
//            }
        }

        return $result;
    }

    static function  replace_multiple_spaces_and_newlines($string) {
        // 使用正则表达式将多个空格和换行符替换为一个空格
        return preg_replace('/[\s\n\r]+/', ' ', $string);
    }


}



